In the field of video decoding, I-frames are used to refresh invalid videos or images during low-delay transmission of videos or images. The refreshing can often cause periodic fluctuation in image quality, a phenomenon called “breathing effect”. In order to reduce the breathing effect, an I-frame block can be dispersed into a plurality of P-frames in form of slices, and then each sub-I-frame in those P-frames can be successively refreshed from top to bottom or from left to right until the I-frame is completely refreshed. Each one of the image frames can be made smooth in size and suitable for real-time transmission by successively refreshing multiple image frames. However, a “rolling strip” phenomenon may appear. The rolling strip phenomenon can be suppressed with the following two approaches.
In the first approach, refreshing blocks can be dispersed in the image frame, such that the rolling strip phenomenon can be less obvious to some extent. However, it is difficult to protect a “refreshed region” with this approach. For instance, a region being previously refreshed can later refer to a “dirty region” (e.g., a region not being refreshed), such that the refreshed region may become dirty again after a few frames. As a result, the image can only be cleaned with repeated refreshing, leading to low refreshing efficiency.
In the second approach, an image can be divided into several refreshing regions, and the order of refreshing can be adjusted according to a global my. With this approach, a rapid spreading of errors from a “dirty region” to the refreshing regions can be prevented to some extent, and thus a refresh efficiency can theoretically be better than that of the first approach. However, flicker can still be apparent since this approach fails to solve the problem of low efficiency of I-blocks.
The two approaches as discussed hereinabove are unable to solve the problem of low compression efficiency of I-frames or I-blocks. The “breathing effect” of images can be apparent even if the images are refreshed by inserting an I-frame or dispersing an I-block into P-frames, leading to poor user experience.